﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;

namespace CluelessServer
{
    public class Player
    {
        private Card character;
        private CardDeck cards;
        private bool active = true;
        private String position;  // Useful??
        private Room currentRoom;

        private ClientInfo clientInformation;

        public Player(ClientInfo client)
        {
            clientInformation = client;
            cards = new CardDeck(false);
        }

        public Room CurrentRoom
        {
            get
            {
                return currentRoom;
            }
            set
            {
                currentRoom = value;
            }
        }

        /// <summary>
        /// Gets the player's name
        /// </summary>
        public String Name
        {
            get
            {
                return clientInformation.Name;
            }
            set
            {
            }
        }


        public Card Character
        {
            get
            {
                return character;
            }
            set
            {
                character = value;
            }
        }

        /// <summary>
        /// Gets the player's socket
        /// </summary>
        public Socket ServerSocket
        {
            get
            {
                return clientInformation.ServerSocket;
            }
            set
            {
            }
        }
        
        public String Position
        {
            get
            {
                return position;
            }
            set
            {
            }
        }

        public Player NextPlayer
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }

        public CardDeck Cards
        {
            get
            {
                return cards;
            }
            set
            {
            }
        }

        public bool Active
        {
            get
            {
                return active;
            }
            set
            {
            }
        }

        public ClientInfo ClinetInformation
        {
            get
            {
                return clientInformation;
            }
            set
            {
            }
        }

        /// <summary>
        /// Adds the card to the user and send the id to the client to be added there
        /// </summary>
        /// <param name="c"></param>
        public void AddCard(Card c)
        {
            Cards.AddCard(c);
        }

        public void Suggest()
        {
            throw new System.NotImplementedException();
        }

        public void Accuse()
        {
            throw new System.NotImplementedException();
        }

        public void Move()
        {
            throw new System.NotImplementedException();
        }

        public void EndTurn()
        {
            throw new System.NotImplementedException();
        }

        public void isActive()
        {
            throw new System.NotImplementedException();
        }

        public void ShowCard()
        {
            throw new System.NotImplementedException();
        }
    }
}
